//Ghlop

freeslot("SPR_BLUB", "SPR_BORB", "S_GHLOPWAIT", "S_GHLOPLOOK", "S_GHLOPANIM", "S_GHLOP_BOUNCE", "S_GHLOPATTACK", "S_GHLOPRETURN", "S_GHLOPFIRE", "S_GHLOPFIREEXP", "MT_GHLOP", "MT_GHLOPFIRE")

states[S_GHLOPWAIT] = {
    sprite = SPR_BLUB,
    frame = A|FF_FULLBRIGHT,
	tics = 30,
	nextstate = S_GHLOPLOOK
}

states[S_GHLOPLOOK] = {
    sprite = SPR_BLUB,
    frame = A,
    action = A_Look,
	frame = FF_FULLBRIGHT,
    var1 = (2048<<16)+1,
    var2 = 1,
	tics = 5,
	nextstate = S_GHLOPLOOK
}

states[S_GHLOPANIM] = {
    sprite = SPR_BLUB,
    frame = B,
    frame = FF_ANIMATE|FF_FULLBRIGHT,
    var1 = 3,
    var2 = 3,
	tics = 12,
	nextstate = S_GHLOP_BOUNCE
}

states[S_GHLOP_BOUNCE] = {
    sprite = SPR_BLUB,
    frame = E,
    action = A_BunnyHop,
	frame = FF_FULLBRIGHT,
    var1 = 5,
    var2 = 0,
	tics = 1,
	nextstate = S_GHLOPATTACK
}

states[S_GHLOPATTACK] = {
    sprite = SPR_BLUB,
    frame = E,
    action = A_BrakLobShot,
	frame = FF_FULLBRIGHT,
    var1 = MT_POPSHOT,
    var2 = (1<<16)+7,
	tics = 3,
	nextstate = S_GHLOPRETURN
}

states[S_GHLOPRETURN] = {
    sprite = SPR_BLUB,
    frame = F|FF_FULLBRIGHT,
	tics = 14,
	action = A_ForceStop,
	nextstate = S_GHLOPWAIT
}

mobjinfo[MT_GHLOP] = {
	//$Sprite BLUBA0
	//$Name Ghlop
	doomednum = 3001,
	height = 22*FRACUNIT,
	radius = 14*FRACUNIT,
	flags = MF_ENEMY|MF_SHOOTABLE|MF_SPECIAL, 
	spawnstate = S_GHLOPWAIT,
	seestate = S_GHLOPANIM,
	deathstate = S_XPLD1,
	deathsound = sfx_s3k92,
	speed = 0*FRACUNIT,
	spawnhealth = 1,
}


states[S_GHLOPFIRE] = {
	sprite = SPR_BORB,
	frame = FF_ANIMATE|FF_FULLBRIGHT,
	var1 = 3,
	var2 = 3
}

states[S_GHLOPFIREEXP] = {
	sprite = SPR_BORB,
	frame = E|FF_ANIMATE|FF_FULLBRIGHT,
	var1 = 2,
	var2 = 3,
	tics = 3
}

mobjinfo[MT_GHLOPFIRE] = {
	height = 8*FRACUNIT,
	radius = 4*FRACUNIT,
	speed = 10*FRACUNIT,
	flags = MF_NOGRAVITY|MF_FIRE|MF_MISSILE|MF_NOBLOCKMAP,
	spawnstate = S_GHLOPFIRE,
	damage = 1,
	deathstate = S_GHLOPFIREEXP
}


freeslot("SPR_TONW", "S_NEWFLAME", "MT_NEWFLAME")

states[S_NEWFLAME] = {
	sprite = SPR_TONW,
	frame = FF_ANIMATE|FF_FULLBRIGHT|TR_TRANS20,
	var1 = 15,
	var2 = 3
}

mobjinfo[MT_NEWFLAME] = {
	//$Sprite TONWA0
	//$Name New Torch
	doomednum = 3925,
	height = 60*FRACUNIT,
	radius = 14*FRACUNIT,
	flags = MF_PAIN|MF_FIRE,
	spawnstate = S_NEWFLAME
}

// Color is determined by the mapthing's angle.
// See http://wiki.srb2.org/wiki/Skin_colors for a list of colors.
local function setColor(mo)
	if mo.spawnpoint and mo.spawnpoint.valid
		mo.color = mo.spawnpoint.angle
	end
end

addHook("MobjThinker",setColor,MT_NEWFLAME)